Result: fail
| Detail | Value |
|---|---|
| Returncode | 1 |
| Time | 0:00:00.388093 |
| Stdout |
Output v[0].a element 0: expected 100.000000, got -107374176.000000
Output v[0].a element 1: expected 200.000000, got -107374176.000000
Output v[0].a element 2: expected 300.000000, got -107374176.000000
Output v[0].a element 3: expected 400.000000, got -107374176.000000
Output v[0].b element 0: expected 500, got -858993460
Output v[0].b element 1: expected 600, got -858993460
Output v[0].b element 2: expected 700, got -858993460
Output v[0].c element 0: expected 800, got -858993460
Output v[0].c element 1: expected 900, got -858993460
Output v[1].a element 0: expected 101.000000, got -107374176.000000
Output v[1].a element 1: expected 201.000000, got -107374176.000000
Output v[1].a element 2: expected 301.000000, got -107374176.000000
Output v[1].a element 3: expected 401.000000, got -107374176.000000
Output v[1].b element 0: expected 501, got -858993460
Output v[1].b element 1: expected 601, got -858993460
Output v[1].b element 2: expected 701, got -858993460
Output v[1].c element 0: expected 801, got -858993460
Output v[1].c element 1: expected 901, got -858993460
Output v[2].a element 0: expected 102.000000, got -107374176.000000
Output v[2].a element 1: expected 202.000000, got -107374176.000000
Output v[2].a element 2: expected 302.000000, got -107374176.000000
Output v[2].a element 3: expected 402.000000, got -107374176.000000
Output v[2].b element 0: expected 502, got -858993460
Output v[2].b element 1: expected 602, got -858993460
Output v[2].b element 2: expected 702, got -858993460
Output v[2].c element 0: expected 802, got -858993460
Output v[2].c element 1: expected 902, got -858993460
Vertex shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME
#define VARYING(NAME) NAME
struct S { mat2 a; ivec3 b; uvec2 c; };
in vec4 pos;
DECLARE_VARYING(out, S[3], v);
void main()
{
gl_Position = pos;
for (int i = 0; i < 3; i++) {
VARYING(v)[i].a = mat2(100.0, 200.0, 300.0, 400.0) + float(i);
VARYING(v)[i].b = ivec3(500, 600, 700) + i;
VARYING(v)[i].c = uvec2(800, 900) + uint(i);
}
}
Fragment shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME
#define VARYING(NAME) NAME
struct S { mat2 a; ivec3 b; uvec2 c; };
DECLARE_VARYING(in, S[3], v);
out vec4 color;
void main()
{
bool pass = true;
for (int i = 0; i < 3; i++) {
if (VARYING(v)[i].a != mat2(100.0, 200.0, 300.0, 400.0) + float(i)) pass = false;
if (VARYING(v)[i].b != ivec3(500, 600, 700) + i) pass = false;
if (VARYING(v)[i].c != uvec2(800, 900) + uint(i)) pass = false;
}
if (pass)
color = vec4(0.0, 1.0, 0.0, 1.0);
else
color = vec4(1.0, 0.0, 0.0, 1.0);
}
|
| Stderr |
SWR detected AVX2 vert shader 0x7f67647f9000 frag shader 0x7f67647f7000 vert shader 0x7f67647f5000 frag shader 0x7f67647f3000 so shader 0x7f67647f1000 fetch shader 0x7f67647ef000 SWR destroy screen! |
| Environment |
PIGLIT_SOURCE_DIR="/home/ilia/src/piglit" PIGLIT_PLATFORM="mixed_glx_egl" |
| Command | /home/ilia/src/piglit/bin/ext_transform_feedback-structs array-struct run -auto -fbo |
| dmesg |